import numpy as np

x = np.arange(15)

# 关于reshape()
print(x.shape)  # (15,) 只有一个维度
y = x.reshape(1, 15)
print(y)
print(y.shape)  # (1,15) 有两个维度
z = x.reshape(5, -1)    # 希望矩阵变形为5行，不管列数
print(z)

# 关于子矩阵修改
X = x.reshape(3, 5)
print(X)
# X矩阵的子矩阵
subX = X[:2, :3]
print(subX)
# 修改子矩阵中的元素
subX[0,0] = 100
print(subX)
# 结果发现原矩阵X的元素也被改变了，这是Numpy的特性，为了效率而设计的
print(X)

# 解决办法，用copy()方法复制子矩阵
subX = X[:2, :3].copy()
print(subX)
subX[0, 0] = 100
print(subX)
print(X)


